{% from "components/macros/layout.html" import badge %} {% from "components/macros/table.html" import data_table, pager as page_links %} {% macro error_cell(value) %}{{ value.type }}{{ value.message }}{% endmacro %} {% macro source_cell(value) %}{{ value.service }}{{ value.runtime }}{% endmacro %} {% macro seen(value) %}{{ error_time(value) }}{% endmacro %}
Collector: {{ badge(error_status.state, {"running": "ok", "degraded": "warn"}.get(error_status.state, "muted")) }} {% if error_status.reason %}{{ error_status.reason }}{% endif %}{% if error_status.last_success %} · Last read {{ error_time(error_status.last_success) }}{% endif %}{% if error_status.drops %} · {{ error_status.drops }} dropped inputs{% endif %}

Up to {{ "%g"|format(error_retention_days) }} days · {{ "{:,}".format(error_max_occurrences) }} retained occurrences. Counts reflect matching history.

Collection details

Search covers exception type and the first 1,024 message characters. Collection is best effort within Docker log retention.

{% if error_note %}

{{ error_note }}

{% else %} {{ data_table([ {"key": "error", "label": "Error", "render": error_cell, "wrap": True}, {"key": "source", "label": "Service", "render": source_cell}, {"key": "count", "label": "Matching occurrences", "kind": "int", "align": "right"}, {"key": "first_seen", "label": "First seen", "render": seen}, {"key": "last_seen", "label": "Last seen", "render": seen}, ], error_rows, empty="No matching retained errors.", row_id="error", flush=False) }} {{ page_links(error_pager, "#overseer-main") }} {% endif %}